package pe.com.bn.sach.dao.impl;

import java.sql.Connection;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Hashtable;


import pe.com.bn.sach.common.Constante;
import pe.com.bn.sach.common.Util;
import java.util.List;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import com.ibatis.sqlmap.client.SqlMapClient;

import pe.com.bn.sach.dao.MantenimientoDAO;
import pe.com.bn.sach.dao.datacom.Bnch02SQL;
import pe.com.bn.sach.dao.datacom.Bnch05SQL;
import pe.com.bn.sach.dao.datacom.Bnch06SQL;
import pe.com.bn.sach.dao.datacom.Bnch50SQL;
import pe.com.bn.sach.domain.Bnchf14CentroHipotecario;

import pe.com.bn.sach.domain.Bnchf16Programa;
import pe.com.bn.sach.domain.Bnchf17GrupoObjetivo;
import pe.com.bn.sach.domain.Bnchf18Destino;
import pe.com.bn.sach.domain.Bnchf19Modalidad;
import pe.com.bn.sach.domain.Bnchf20Producto;
import pe.com.bn.sach.domain.Bnchf28OcupacionCargo;
import pe.com.bn.sach.domain.Bnchf37Promotor;
import pe.com.bn.sach.domain.Bnchf38Broker;
import pe.com.bn.sach.domain.Bnchf39Notaria;
import pe.com.bn.sach.domain.Bnchf40Tasador;
import pe.com.bn.sach.domain.Bnchf45GrupoDestino;
import pe.com.bn.sach.domain.Bnchf55Moneda;
import pe.com.bn.sach.domain.Bnchf63InstitucionEmpresa;

import pe.com.bn.sach.domain.MantenimientoHost;
import  pe.com.bn.sach.domain.Bnchf54ParametroProducto;

public class MantenimientoImpl implements MantenimientoDAO{

	protected SqlMapClient sqlMap = null;
	
	
    /** Logger for this class and subclasses */    
	
    protected final Log logger = LogFactory.getLog(getClass());
    
	public void setSqlMap(SqlMapClient sqlMap) {
		this.sqlMap = sqlMap;
	}
	
	
	
	
	
	/* bnchf06*/
	/* ListarXBNCHF06CONSULTA */

	public List listarXCHBNCHF06CONSULTA(String idCodTarifa ,String codigoCh,Connection cnx) throws Exception{
	
		MantenimientoHost MantenimientoHost=new MantenimientoHost();		
		MantenimientoHost.setF06CodTarifa(""+idCodTarifa);		
		MantenimientoHost.setF06CodCentroHip(""+codigoCh);
		Bnch06SQL bnchf06=new Bnch06SQL(cnx);		
		return bnchf06.ListarXBNCHF06CONSULTA(MantenimientoHost);
		
	}
	
	public List listarXCHBNCHF06(String idCodTarifa ,String codigoCh,Connection cnx) throws Exception{
		
		
		MantenimientoHost MantenimientoHost=new MantenimientoHost();		
		MantenimientoHost.setF06CodTarifa(""+idCodTarifa);		
		MantenimientoHost.setF06CodCentroHip(""+codigoCh);
		Bnch06SQL bnchf06=new Bnch06SQL(cnx);
		//return sqlMapbuc.queryForList("sqlMantenimientoHost.ListarXCHBNCHF06",MantenimientoHost);
		return bnchf06.ListarXCHBNCHF06(MantenimientoHost);
	}
	
/** notaria**/ 
	public List listarNotaria(Bnchf39Notaria bnchf39Notaria) throws Exception{
		List agencia=new ArrayList();
		return sqlMap.queryForList("sqlMantenimiento.ListarNotaria",bnchf39Notaria);	
	}
	public Bnchf39Notaria encontrarNotaria(Bnchf39Notaria bnchf39Notaria) throws Exception{
		return (Bnchf39Notaria)((List)sqlMap.queryForList("sqlMantenimiento.EncontrarNotaria",bnchf39Notaria)).get(0);	
	}	
	public String  guardarNotaria(Bnchf39Notaria bnchf39Notaria)throws Exception{
		
		try{
			sqlMap.startTransaction();
			
			
	    	MantenimientoHost mt=new MantenimientoHost();
			bnchf39Notaria.setF39IdNotaria(nextNotaria());
			
			sqlMap.insert("sqlMantenimiento.GuardarAgente",bnchf39Notaria);
			sqlMap.insert("sqlMantenimiento.GuardarNotaria",bnchf39Notaria);
			mt.setF10CodAgente(""+Util.lpad(""+bnchf39Notaria.getF39IdNotaria(),"0",6));		
			mt.setF10DesAgente("NOTARIO");
			String nombres="";

			nombres=bnchf39Notaria.getF39RazonSocial();		
			mt.setF10NomAgente(bnchf39Notaria.getF39RazonSocial());			
			mt.setF10TipoDoc("04"); 
			mt.setF10NroDoc(bnchf39Notaria.getF39Ruc());
			mt.setF10Telefono(""+bnchf39Notaria.getF39TelfFijo());			
			mt.setF10NroCuenta(""+bnchf39Notaria.getF39NroCta());
			//guardarBNCH10(mt);
			
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}


		return "";
	}
	public String  modificarNotaria(Bnchf39Notaria bnchf39Notaria)throws Exception{
		
		try{
			sqlMap.startTransaction();
			
			
			sqlMap.insert("sqlMantenimiento.ActualizarAgente",bnchf39Notaria);
			sqlMap.update("sqlMantenimiento.ActualizarNotaria",bnchf39Notaria);
			MantenimientoHost mt=new MantenimientoHost();
			mt.setF10DesAgente("NOTARIO");
			String nombres="";
			nombres=bnchf39Notaria.getF39RazonSocial();
			mt.setF10CodAgente(bnchf39Notaria.getF39IdNotaria()+"");
			mt.setF10NomAgente(bnchf39Notaria.getF39RazonSocial());			
			mt.setF10TipoDoc("04"); 
			mt.setF10NroDoc(bnchf39Notaria.getF39Ruc());
			mt.setF10Telefono(""+bnchf39Notaria.getF39TelfFijo());			
			mt.setF10NroCuenta(""+bnchf39Notaria.getF39NroCta());
			//modificarBNCH10(mt);	
			
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		
		
		
			

		return "";
	}	
	public String bajarNotaria(Bnchf39Notaria bnchf39Notaria)throws Exception{
		
		try{
			sqlMap.startTransaction();
			sqlMap.update("sqlMantenimiento.BajarNotaria",bnchf39Notaria);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		
		return "";	
	}
	public Long nextNotaria() throws Exception{
	       try {      
	    	    String id = (String)sqlMap.queryForObject("sqlMantenimiento.NextAgente");	    	    
	            if(id ==null){
	            	id="2";
	            }
	            return new Long(id);
	        } catch (Exception e){
	            throw new Exception("Error en generar codigo Notaria: " + e);
	        }
	}
	
	
	/** broker **/
	public List listarBroker(Bnchf38Broker bnchf38Broker) throws Exception{
		List agencia=new ArrayList();
		return sqlMap.queryForList("sqlMantenimiento.ListarBroker",bnchf38Broker);	
	}
	public Bnchf38Broker encontrarBroker(Bnchf38Broker bnchf38Broker) throws Exception{
		return (Bnchf38Broker)((List)sqlMap.queryForList("sqlMantenimiento.EncontrarBroker",bnchf38Broker)).get(0);	
	}	
	public String  guardarBroker(Bnchf38Broker bnchf38Broker)throws Exception{

		try{
			sqlMap.startTransaction();
			bnchf38Broker.setF38IdBroker(nextBroker());
			sqlMap.insert("sqlMantenimiento.GuardarBroker",bnchf38Broker);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}

		return "";
	}
	public String  modificarBroker(Bnchf38Broker bnchf38Broker)throws Exception{  

		try{
			sqlMap.startTransaction();
			sqlMap.update("sqlMantenimiento.ActualizarBroker",bnchf38Broker);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		
		
		return "";
	}	
	public String bajarBroker(Bnchf38Broker bnchf38Broker)throws Exception{

		try{
			sqlMap.startTransaction();
			sqlMap.update("sqlMantenimiento.BajarBroker",bnchf38Broker);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		
		return "";	
	}
	public Long nextBroker() throws Exception{
	       try {      
	    	    String id = (String)sqlMap.queryForObject("sqlMantenimiento.NextBroker");	    	    
	            if(id ==null){
	            	id="1";
	            }
	            return new Long(id);
	        } catch (Exception e){
	            throw new Exception("Error en generar codigo Broker: " + e);
	        }
	}
	
	/** notaria**/
	public List listarTasador(Bnchf40Tasador bnchf40Tasador) throws Exception{
		List agencia=new ArrayList();
		return sqlMap.queryForList("sqlMantenimiento.ListarTasador",bnchf40Tasador);	
	}
	public Bnchf40Tasador encontrarTasador(Bnchf40Tasador bnchf40Tasador) throws Exception{
		return (Bnchf40Tasador)((List)sqlMap.queryForList("sqlMantenimiento.EncontrarTasador",bnchf40Tasador)).get(0);	
	}	
	public String  guardarTasador(Bnchf40Tasador bnchf40Tasador)throws Exception{
		
		
		bnchf40Tasador.setF40IdTasador(nextTasador());
		
		

		try{
			sqlMap.startTransaction();
					
			sqlMap.insert("sqlMantenimiento.GuardarAgenteTasador",bnchf40Tasador);
			
		
			sqlMap.insert("sqlMantenimiento.GuardarTasador",bnchf40Tasador);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
    	MantenimientoHost mt=new MantenimientoHost();    	
		mt.setF10CodAgente(""+Util.lpad(""+bnchf40Tasador.getF40IdTasador(),"0",6));		
		mt.setF10DesAgente("TASADOR");
		String nombres="";
		if(bnchf40Tasador.getF40TpoTasador()!=null)
		if(Integer.parseInt(""+bnchf40Tasador.getF40TpoTasador())==1){			
			nombres=bnchf40Tasador.getF40ApePat()+""+bnchf40Tasador.getF40ApeMat()+""+bnchf40Tasador.getF40Nomb();			
			mt.setF10NomAgente(nombres);
			mt.setF10TipoDoc(""+Util.lpad(bnchf40Tasador.getF40TpoDoc()+"","0",2));
			mt.setF10NroDoc(""+bnchf40Tasador.getF40NumDoc());
		}
		else{			
			nombres=bnchf40Tasador.getF40RazonSocial();		
			mt.setF10NomAgente(bnchf40Tasador.getF40RazonSocial());			
			mt.setF10TipoDoc("04"); 
			mt.setF10NroDoc(bnchf40Tasador.getF40Ruc());
			}
			mt.setF10Telefono(""+bnchf40Tasador.getF40TelfFijo());			
			mt.setF10NroCuenta(""+bnchf40Tasador.getF40NroCta());
			//guardarBNCH10(mt);
			
			
		return "";
	}
	public String  modificarTasador(Bnchf40Tasador bnchf40Tasador)throws Exception{
		
		try{
			sqlMap.startTransaction();
			
			
			sqlMap.update("sqlMantenimiento.ActualizarTasador",bnchf40Tasador);
	    	MantenimientoHost mt=new MantenimientoHost();    	
			mt.setF10CodAgente(""+Util.lpad(""+bnchf40Tasador.getF40IdTasador(),"0",6));		
			mt.setF10DesAgente("TASADOR");
			String nombres="";		
			if(Integer.parseInt(""+bnchf40Tasador.getF40TpoTasador())==1){
				nombres=bnchf40Tasador.getF40ApePat()+""+bnchf40Tasador.getF40ApeMat()+""+bnchf40Tasador.getF40Nomb();			
				mt.setF10NomAgente(nombres);
				mt.setF10TipoDoc(""+Util.lpad(bnchf40Tasador.getF40TpoDoc()+"","0",2));
				mt.setF10NroDoc(""+bnchf40Tasador.getF40NumDoc());
			}
			else{
				nombres=bnchf40Tasador.getF40RazonSocial();		
				mt.setF10NomAgente(bnchf40Tasador.getF40RazonSocial());			
				mt.setF10TipoDoc("04"); 
				mt.setF10NroDoc(bnchf40Tasador.getF40Ruc());
			}				
			mt.setF10Telefono(""+bnchf40Tasador.getF40TelfFijo());			
			mt.setF10NroCuenta(""+bnchf40Tasador.getF40NroCta());
			//modificarBNCH10(mt);
			
			
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		

		return "";
	}	
	public String bajarTasador(Bnchf40Tasador bnchf40Tasador)throws Exception{

		try{
			sqlMap.startTransaction();
			sqlMap.update("sqlMantenimiento.BajarTasador",bnchf40Tasador);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		
		return "";	
	
		}
	public Long nextTasador() throws Exception{ 
	       try {      
	    	    String id = (String)sqlMap.queryForObject("sqlMantenimiento.NextAgente");	    	    
	            if(id ==null){
	            	id="2";
	            }
	            return new Long(id);
	        } catch (Exception e){
	            throw new Exception("Error en generar codigo Tasador: " + e);
	        }
	}
	/** notaria**/ 
	public List listarPromotor(Bnchf37Promotor bnchf37Promotor) throws Exception{
		List agencia=new ArrayList();
		return sqlMap.queryForList("sqlMantenimiento.ListarPromotor",bnchf37Promotor);	
	}
	public Bnchf37Promotor encontrarPromotor(Bnchf37Promotor bnchf37Promotor) throws Exception{
	
		return (Bnchf37Promotor)((List)sqlMap.queryForList("sqlMantenimiento.EncontrarPromotor",bnchf37Promotor)).get(0);	
	}	
	public String  guardarPromotor(Bnchf37Promotor bnchf37Promotor)throws Exception{
		bnchf37Promotor.setF37IdPromotor(nextPromotor());
		

		try{
			sqlMap.startTransaction();
			sqlMap.insert("sqlMantenimiento.GuardarPromotor",bnchf37Promotor);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		
		return "";
	}
	public String  modificarPromotor(Bnchf37Promotor bnchf37Promotor)throws Exception{
		
		try{
			sqlMap.startTransaction();
			sqlMap.update("sqlMantenimiento.ActualizarPromotor",bnchf37Promotor);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		
		return "";
	}	
	public String bajarPromotor(Bnchf37Promotor bnchf37Promotor)throws Exception{

		try{
			sqlMap.startTransaction();
			sqlMap.update("sqlMantenimiento.BajarPromotor",bnchf37Promotor);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		
		return "";	
	}
	public Long nextPromotor() throws Exception{
	       try {      
	    	    String id = (String)sqlMap.queryForObject("sqlMantenimiento.NextPromotor");	    	    
	            if(id ==null){
	            	id="1";
	            }
	            return new Long(id); 
	        } catch (Exception e){
	            throw new Exception("Error en generar codigo Promotor: " + e);
	        }
	}
	/*empresa */
	

	public List listarInstitucionEmpresa(Bnchf63InstitucionEmpresa bnchf39InstitucionEmpresa) throws Exception{
		List agencia=new ArrayList();
		return sqlMap.queryForList("sqlMantenimiento.ListarInstitucionEmpresa",bnchf39InstitucionEmpresa);	
	}
	public Bnchf63InstitucionEmpresa encontrarInstitucionEmpresa(Bnchf63InstitucionEmpresa bnchf39InstitucionEmpresa) throws Exception{
		return (Bnchf63InstitucionEmpresa)((List)sqlMap.queryForList("sqlMantenimiento.EncontrarInstitucionEmpresa",bnchf39InstitucionEmpresa)).get(0);	
	}	
	
	
	public String  guardarInstitucionEmpresa(Bnchf63InstitucionEmpresa bnchf39InstitucionEmpresa)throws Exception{
		
     	
		try{
			sqlMap.startTransaction();
			bnchf39InstitucionEmpresa.setF63IdInstitucion(nextInstitucionEmpresa());
			
			sqlMap.insert("sqlMantenimiento.GuardarAgenteInstitucionEmpresa",bnchf39InstitucionEmpresa);
			sqlMap.insert("sqlMantenimiento.GuardarInstitucionEmpresa",bnchf39InstitucionEmpresa);

			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		

		return "";
	}
	public String  modificarInstitucionEmpresa(Bnchf63InstitucionEmpresa bnchf39InstitucionEmpresa)throws Exception{

		try{
			sqlMap.startTransaction();
			sqlMap.insert("sqlMantenimiento.ActualizarAgenteInstitucionEmpresa",bnchf39InstitucionEmpresa);
			sqlMap.update("sqlMantenimiento.ActualizarInstitucionEmpresa",bnchf39InstitucionEmpresa);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		
		return "";
	}	
	public String bajarInstitucionEmpresa(Bnchf63InstitucionEmpresa bnchf39InstitucionEmpresa)throws Exception{
		try{
			sqlMap.startTransaction();
			sqlMap.update("sqlMantenimiento.BajarInstitucionEmpresa",bnchf39InstitucionEmpresa);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		
		
		return "";	
	}
	public Long nextInstitucionEmpresa() throws Exception{
	       try {      
	    	    String id = (String)sqlMap.queryForObject("sqlMantenimiento.NextAgente");	    	    
	            if(id ==null){
	            	id="2";
	            } 
	            return new Long(id);
	        } catch (Exception e){
	            throw new Exception("Error en generar codigo InstitucionEmpresa: " + e);
	        }
	}
	
	
	/** CentroHipotecario   **/
	public List listarCentroHipotecario(Bnchf14CentroHipotecario bnchf14CentroHipotecario) throws Exception{
		List agencia=new ArrayList();
		
		return sqlMap.queryForList("sqlMantenimiento.ListarCentroHipotecario",bnchf14CentroHipotecario);	
	}
	public Bnchf14CentroHipotecario encontrarCentroHipotecario(Bnchf14CentroHipotecario bnchf14CentroHipotecario) throws Exception{
		
			return (Bnchf14CentroHipotecario)((List)sqlMap.queryForList("sqlMantenimiento.EncontrarCentroHipotecario",bnchf14CentroHipotecario)).get(0);	
	}	
	public String  guardarCentroHipotecario(Bnchf14CentroHipotecario bnchf14CentroHipotecario,Connection cnx)throws Exception{
		
		bnchf14CentroHipotecario.setF14IdHipotecario(nextCentroHipotecario());
		MantenimientoHost mnt=new MantenimientoHost();		
	/*INI*/
	        mnt.setF50CodTabla("F15");
	        mnt.setF50CodElemento(Util.lpad(bnchf14CentroHipotecario.getF14IdHipotecario()+"","0",6));        
	       
	        mnt.setF50DesCorta("");
	        mnt.setF50DesLarga(bnchf14CentroHipotecario.getF14DescHipotec());                    
	        mnt.setF50DesAmpliada(bnchf14CentroHipotecario.getF14DescHipotec());
	        mnt.setF50DesCampo1("0");
	        mnt.setF50DesCampo2("0");
	        mnt.setF50DesCampo3("0");
	        mnt.setF50DesCampo4("0");
	   
		    String str="";
		    Bnch50SQL  bnchf50=new Bnch50SQL(cnx);
		   
		    str=""+bnchf50.verificaSiExiste(mnt);			
			
		    if(str==null){str="0";}	      
    
		    if(Integer.parseInt(""+str)>=1){
			    //datacom		    	
			    bnchf50.modificar(mnt);
			}else{
			    //datacom
			    bnchf50.guardar(mnt);	    	
		    	}   
		    //oracle
			try{
				sqlMap.startTransaction();
				sqlMap.insert("sqlMantenimiento.GuardarCentroHipotecario",bnchf14CentroHipotecario);
				sqlMap.commitTransaction();
			}catch(Exception e){
				e.printStackTrace();
				throw e;
			}finally{
				sqlMap.endTransaction();
			}
			
		return "";
	}
	
	  
	public String  guardarAgenciaCentroHipotecario(Bnchf14CentroHipotecario bnchf14CentroHipotecario,List agenciasList,String idAgenciaPrincipal)throws Exception{
		
		try{
			sqlMap.startTransaction();
			
			
			MantenimientoHost mnt=new MantenimientoHost();		
			sqlMap.delete("sqlMantenimiento.EliminarHipotecAgencia",bnchf14CentroHipotecario);
		
			for (int i = 0; i < agenciasList.size(); i++) {
				String idAgencia="";
				idAgencia=(String)agenciasList.get(i);  
				bnchf14CentroHipotecario.setF14IdAgencia(idAgencia);
				
				if(bnchf14CentroHipotecario.getF14IdAgencia()!=null)
					if(!bnchf14CentroHipotecario.getF14IdAgencia().equals("")){ 
						if(bnchf14CentroHipotecario.getF14IdAgencia().equals(idAgenciaPrincipal)){
							bnchf14CentroHipotecario.setF14Principal(new Long("1"));
						}else        
							bnchf14CentroHipotecario.setF14Principal(null);
							sqlMap.insert("sqlMantenimiento.GuardarHipotecAgencia",bnchf14CentroHipotecario);
						}
					
			}		
	        mnt.setF15CodCentHipotcr(Util.lpad(bnchf14CentroHipotecario.getF14IdHipotecario()+"","0",6));        
	        mnt.setF15CodAgencia(idAgenciaPrincipal);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}

		return "";  
	} 
	
	public String  modificarCentroHipotecario(Bnchf14CentroHipotecario bnchf14CentroHipotecario,Connection cnx)throws Exception{
		
		MantenimientoHost mnt=new MantenimientoHost();
	        mnt.setF50CodTabla("F15");
	        mnt.setF50CodElemento(Util.lpad(bnchf14CentroHipotecario.getF14IdHipotecario()+"","0",6));       
	        mnt.setF50DesCorta("");//f50DesCorta
	        mnt.setF50DesLarga(bnchf14CentroHipotecario.getF14DescHipotec());                    
	        mnt.setF50DesAmpliada(bnchf14CentroHipotecario.getF14DescHipotec());
	        mnt.setF50DesCampo1("0");
	        mnt.setF50DesCampo2("0");
	        mnt.setF50DesCampo3("0");
	        mnt.setF50DesCampo4("0");    
		//FIN
	    String str="";
	    Bnch50SQL  bnchf50=new Bnch50SQL(cnx);
	    try {
	    	str=""+bnchf50.verificaSiExiste(mnt);
	    	
		} catch (Exception e) {
			// TODO: handle exception 
			str="0";
		}
		
	    if(str==null){str="0";}	      
	   
	    if(Integer.parseInt(""+str)>=1){
		    //datacom
		    bnchf50.modificar(mnt);
	    }else{
		    //datacom
		    bnchf50.guardar(mnt);	    	
	    	}   
	    //oracle

		
		try{
			sqlMap.startTransaction();
			sqlMap.insert("sqlMantenimiento.ActualizarCentroHipotecario",bnchf14CentroHipotecario);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}

		
		return "";
	}	
	public String bajarCentroHipotecario(Bnchf14CentroHipotecario bnchf14CentroHipotecario,Connection cnx)throws Exception{

		try{
			sqlMap.startTransaction();
			sqlMap.update("sqlMantenimiento.BajarCentroHipotecario",bnchf14CentroHipotecario);
			MantenimientoHost mnt=new MantenimientoHost();
	        mnt.setF50CodTabla("F15");
	        mnt.setF50CodElemento(Util.lpad(bnchf14CentroHipotecario.getF14IdHipotecario()+"","0",6));      
			Bnch50SQL  bnchf50=new Bnch50SQL(cnx);
			bnchf50.bajar(mnt);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}

		return "";	
	}
	public Long nextCentroHipotecario() throws Exception{
	       try {      
	    	    String id = (String)sqlMap.queryForObject("sqlMantenimiento.NextCentroHipotecario");	    	    
	            if(id ==null){
	            	id="1";
	            }
	            return new Long(id);
	        } catch (Exception e){
	            throw new Exception("Error en generar codigo CentroHipotecario: " + e);
	        }
	}

	

	/** Programa IMPL   **/
	public List listarPrograma(Bnchf16Programa bnchf16Programa) throws Exception{
		List agencia=new ArrayList();
		return sqlMap.queryForList("sqlMantenimiento.ListarPrograma",bnchf16Programa);	
	}
	
	
	/** Programa IMPL   **/
	public List comboPrograma(Bnchf16Programa bnchf16Programa) throws Exception{
		List agencia=new ArrayList();
		return sqlMap.queryForList("sqlMantenimiento.ComboPrograma",bnchf16Programa);	
	}
	
	public Bnchf16Programa encontrarPrograma(Bnchf16Programa bnchf16Programa) throws Exception{
		return (Bnchf16Programa)((List)sqlMap.queryForList("sqlMantenimiento.EncontrarPrograma",bnchf16Programa)).get(0);	
	}	
	public String  guardarPrograma(Bnchf16Programa bnchf16Programa,Connection cnx)throws Exception{
		
		 MantenimientoHost mnt=new MantenimientoHost();
		 bnchf16Programa.setF16IdPrograma(nextPrograma());
         mnt.setF50CodTabla("F04");
         mnt.setF50CodElemento(Util.lpad(bnchf16Programa.getF16IdPrograma()+"","0",6));
         
      mnt.setF50DesCorta("");//f50DesCorta
         mnt.setF50DesLarga(bnchf16Programa.getF16DescPrograma());                    
         mnt.setF50DesAmpliada(bnchf16Programa.getF16DescPrograma());
         mnt.setF50DesCampo1("0");
         mnt.setF50DesCampo2("0");
         mnt.setF50DesCampo3("0");
         mnt.setF50DesCampo4("0");
         String str="";
         Bnch50SQL bnchf50=new Bnch50SQL(cnx);
       	str=""+bnchf50.verificaSiExiste(mnt);
		   
		    if(str==null){str="0";}	      
		 
		    
		    
		    if(Integer.parseInt(""+str)>=1){
			    //datacom		    	
			    bnchf50.modificar(mnt);
			}else{
			    //datacom
			    bnchf50.guardar(mnt);	    	
		    	}
		try{
			sqlMap.startTransaction();
			sqlMap.insert("sqlMantenimiento.GuardarPrograma",bnchf16Programa);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		
		return "";
	}
	public String  modificarPrograma(Bnchf16Programa bnchf16Programa,Connection cnx)throws Exception{
		
		MantenimientoHost mnt=new MantenimientoHost();
        mnt.setF50CodTabla("F04");
        mnt.setF50CodElemento(Util.lpad(bnchf16Programa.getF16IdPrograma()+"","0",6));
        mnt.setF50DesCorta("");
        mnt.setF50DesLarga(bnchf16Programa.getF16DescPrograma());                    
        mnt.setF50DesAmpliada(bnchf16Programa.getF16DescPrograma());
        mnt.setF50DesCampo1("0");
        mnt.setF50DesCampo2("0");
        mnt.setF50DesCampo3("0");
        mnt.setF50DesCampo4("0");        
       
		String str="";
		Bnch50SQL  bnchf50=new Bnch50SQL(cnx);		
		try { 
			 //str=""+sqlMapbuc.queryForObject("sqlMantenimientoHost.verificaSiExiste",mnt);
	    	
	    	str=""+bnchf50.verificaSiExiste(mnt);
			
		}catch (Exception e) {
			// TODO: handle exception
			str=null;
		}
		if(str==null) str="0";		
		if(Integer.parseInt(str+"")>=1)
			bnchf50.modificar(mnt);	
		else
			bnchf50.guardar(mnt);

		try{
			sqlMap.startTransaction();
			sqlMap.update("sqlMantenimiento.ActualizarPrograma",bnchf16Programa);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		
		return "";
	}	
	public String bajarPrograma(Bnchf16Programa bnchf16Programa,Connection cnx)throws Exception{
		
		try{
			sqlMap.startTransaction();
			sqlMap.update("sqlMantenimiento.BajarPrograma",bnchf16Programa);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		

		MantenimientoHost mnt=new MantenimientoHost();
        mnt.setF50CodTabla("F04");
        mnt.setF50CodElemento(Util.lpad(bnchf16Programa.getF16IdPrograma()+"","0",6));
        mnt.setF50DesCorta("");
        mnt.setF50DesCampo1("0");
        mnt.setF50DesCampo2("0");
        mnt.setF50DesCampo3("0");
        mnt.setF50DesCampo4("0");        
		Bnch50SQL  bnchf50=new Bnch50SQL(cnx);	
		bnchf50.bajar(mnt);
		
		return "";	
	}
	public Long nextPrograma() throws Exception{
	       try {      
	    	    String id = (String)sqlMap.queryForObject("sqlMantenimiento.NextPrograma");	    	    
	            if(id ==null){
	            	id="1";
	            }
	            return new Long(id);
	        } catch (Exception e){
	            throw new Exception("Error en generar codigo Programa: " + e);
	        }
	}
	
	
	/** GrupoObjetivo IMPL   **/
	public List listarGrupoObjetivo(Bnchf17GrupoObjetivo bnchf17GrupoObjetivo) throws Exception{
		List agencia=new ArrayList();
		return sqlMap.queryForList("sqlMantenimiento.ListarGrupoObjetivo",bnchf17GrupoObjetivo);	
	}
	public List comboGrupoObjetivo() throws Exception{
		List grupoObjList=new ArrayList();
		grupoObjList=(List)sqlMap.queryForList("sqlMantenimiento.ComboGrupoObjetivo");		
		
		return grupoObjList;
	}
	public Bnchf17GrupoObjetivo encontrarGrupoObjetivo(Bnchf17GrupoObjetivo bnchf17GrupoObjetivo) throws Exception{
		return (Bnchf17GrupoObjetivo)((List)sqlMap.queryForList("sqlMantenimiento.EncontrarGrupoObjetivo",bnchf17GrupoObjetivo)).get(0);	
	}	
	public String  guardarGrupoObjetivo(Bnchf17GrupoObjetivo bnchf17GrupoObjetivo,Connection cnx)throws Exception{
		MantenimientoHost mnt=new MantenimientoHost();

		bnchf17GrupoObjetivo.setF17IdGrupoObjetivo(nextGrupoObjetivo());
        mnt.setF14NomCortoGrp("");
        mnt.setF14NomLargoGrp(bnchf17GrupoObjetivo.getF17DescGrpoObj());                    
        mnt.setF50CodTabla("F14");
        mnt.setF50CodElemento(Util.lpad(bnchf17GrupoObjetivo.getF17IdGrupoObjetivo()+"","0",6));        
      
        mnt.setF50DesCorta("");//f50DesCorta
        mnt.setF50DesLarga(bnchf17GrupoObjetivo.getF17DescGrpoObj());                    
        mnt.setF50DesAmpliada(bnchf17GrupoObjetivo.getF17DescGrpoObj());
        mnt.setF50DesCampo1("0");
        mnt.setF50DesCampo2("0");
        mnt.setF50DesCampo3("0");
        mnt.setF50DesCampo4("0");
        
        
        Bnch50SQL bnchf50=new Bnch50SQL(cnx);  
	    String str=""+bnchf50.verificaSiExiste(mnt);			
		
	    if(str==null){str="0";}	      
	  
	    if(Integer.parseInt(""+str)>=1){
		    //datacom		    	
		    bnchf50.modificar(mnt);
		}else{
		    //datacom
		    bnchf50.guardar(mnt);	    	
	    	}

        
		try{
			sqlMap.startTransaction();
			sqlMap.insert("sqlMantenimiento.GuardarGrupoObjetivo",bnchf17GrupoObjetivo);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		
		return "";
	}
	public String  modificarGrupoObjetivo(Bnchf17GrupoObjetivo bnchf17GrupoObjetivo,Connection cnx)throws Exception{
		
		MantenimientoHost mnt=new MantenimientoHost();
         //modificar 
         mnt.setF50CodTabla("F14");
         mnt.setF50CodElemento(Util.lpad(bnchf17GrupoObjetivo.getF17IdGrupoObjetivo()+"","0",6));
         mnt.setF50DesCorta("");
         mnt.setF50DesLarga(bnchf17GrupoObjetivo.getF17DescGrpoObj());                    
         mnt.setF50DesAmpliada(bnchf17GrupoObjetivo.getF17DescGrpoObj());
         mnt.setF50DesCampo1("0");
         mnt.setF50DesCampo2("0");
         mnt.setF50DesCampo3("0");
         mnt.setF50DesCampo4("0");        
        
        
		String str="";
		Bnch50SQL  bnchf50=new Bnch50SQL(cnx);
		try {
			 //str=""+sqlMapbuc.queryForObject("sqlMantenimientoHost.verificaSiExiste",mnt);
	    	
	    	str=""+bnchf50.verificaSiExiste(mnt);
			
		}catch (Exception e) {
			// TODO: handle exception
			str=null;
		}
		if(str==null) str="0";		
		if(Integer.parseInt(str+"")>=1)
			bnchf50.modificar(mnt);	
		else
			bnchf50.guardar(mnt);
		

		try{
			sqlMap.startTransaction();
			sqlMap.update("sqlMantenimiento.ActualizarGrupoObjetivo",bnchf17GrupoObjetivo);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}

		return "";
	}	
	public String bajarGrupoObjetivo(Bnchf17GrupoObjetivo bnchf17GrupoObjetivo,Connection cnx)throws Exception{
		
		try{
			sqlMap.startTransaction();
			sqlMap.update("sqlMantenimiento.BajarGrupoObjetivo",bnchf17GrupoObjetivo);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}

		
		MantenimientoHost mnt=new MantenimientoHost();
        //modificar 
        mnt.setF50CodTabla("F14");
        mnt.setF50CodElemento(Util.lpad(bnchf17GrupoObjetivo.getF17IdGrupoObjetivo()+"","0",6));
    
		Bnch50SQL  bnchf50=new Bnch50SQL(cnx);
		bnchf50.bajar(mnt);
		
		return "";	
	}
	public Long nextGrupoObjetivo() throws Exception{
	       try {      
	    	    String id = (String)sqlMap.queryForObject("sqlMantenimiento.NextGrupoObjetivo");	    	    
	            if(id ==null){
	            	id="1";
	            }
	            return new Long(id);
	        } catch (Exception e){
	            throw new Exception("Error en generar codigo GrupoObjetivo: " + e);
	        }
	}
	
	
	
	/** Destino IMPL   **/
	public List listarDestino(Bnchf18Destino bnchf18Destino) throws Exception{
		List agencia=new ArrayList();
		return sqlMap.queryForList("sqlMantenimiento.ListarDestino",bnchf18Destino);	
	}
	
	public List comboDestino(Bnchf18Destino bnchf18Destino) throws Exception{
		List agencia=new ArrayList();
		
		
		return sqlMap.queryForList("sqlMantenimiento.ComboDestino",bnchf18Destino);	
	}
	public Bnchf18Destino encontrarDestino(Bnchf18Destino bnchf18Destino) throws Exception{
		return (Bnchf18Destino)((List)sqlMap.queryForList("sqlMantenimiento.EncontrarDestino",bnchf18Destino)).get(0);	
	}	
	public String  guardarDestino(Bnchf18Destino bnchf18Destino,Connection cnx)throws Exception{
		
		bnchf18Destino.setF18IdDestino(nextDestino());
		MantenimientoHost mnt=new MantenimientoHost();		
		mnt.setF50CodTabla("F51");
        mnt.setF50CodElemento(Util.lpad(bnchf18Destino.getF18IdDestino()+"","0",6));        
   
        mnt.setF50DesCorta("");//f50DesCorta
        mnt.setF50DesLarga(bnchf18Destino.getF18DescDestino());                    
        mnt.setF50DesAmpliada(bnchf18Destino.getF18DescDestino());
        mnt.setF50DesCampo1("0");
        mnt.setF50DesCampo2("0");
        mnt.setF50DesCampo3("0");
        mnt.setF50DesCampo4("0");       
 
		//FIN
	    String str="";
	    Bnch50SQL  bnchf50=new Bnch50SQL(cnx);
	    try {
	    	//str=""+sqlMapbuc.queryForObject("sqlMantenimientoHost.verificaSiExiste",mnt);
	    	
	    	str=""+bnchf50.verificaSiExiste(mnt);
	    	
		} catch (Exception e) {
			// TODO: handle exception 
			str="0";
		}
		
	    if(str==null){str="0";}	      
	
	    if(Integer.parseInt(""+str)>=1){
		    //datacom
		    bnchf50.modificar(mnt);
	    }else{
		    //datacom
		    bnchf50.guardar(mnt);	    	
	    }
	    
	    try{
	    	sqlMap.startTransaction();
	    	sqlMap.insert("sqlMantenimiento.GuardarDestino",bnchf18Destino);
	    	sqlMap.commitTransaction();
	    }catch(Exception e){
	    	e.printStackTrace();
	    	throw e;
	    }finally{
	    	sqlMap.endTransaction();
	    }
	    
	    
		return "";
	}
	public String  modificarDestino(Bnchf18Destino bnchf18Destino,Connection cnx)throws Exception{

		MantenimientoHost mnt=new MantenimientoHost();		
		mnt.setF50CodTabla("F51");
        mnt.setF50CodElemento(Util.lpad(bnchf18Destino.getF18IdDestino()+"","0",6));
        mnt.setF50DesCorta("");
        mnt.setF50DesLarga(bnchf18Destino.getF18DescDestino());                    
        mnt.setF50DesAmpliada(bnchf18Destino.getF18DescDestino());
        mnt.setF50DesCampo1("0");
        mnt.setF50DesCampo2("0");
        mnt.setF50DesCampo3("0");
        mnt.setF50DesCampo4("0"); 
        
      
		//FIN
	    String str="";
	    Bnch50SQL  bnchf50=new Bnch50SQL(cnx);
	    try {
	    	//str=""+sqlMapbuc.queryForObject("sqlMantenimientoHost.verificaSiExiste",mnt);
	    	
	    	str=""+bnchf50.verificaSiExiste(mnt);
	    	
		} catch (Exception e) {
			// TODO: handle exception 
			str="0";
		}
		
	    if(str==null){str="0";}	      
	  
	    if(Integer.parseInt(""+str)>=1){
		    //datacom
		    bnchf50.modificar(mnt);
	    }else{
		    //datacom
		    bnchf50.guardar(mnt);	    	
	    }
	
		try{
	    	sqlMap.startTransaction();
	    	sqlMap.update("sqlMantenimiento.ActualizarDestino",bnchf18Destino);
	    	sqlMap.commitTransaction();
	    }catch(Exception e){
	    	e.printStackTrace();
	    	throw e;
	    }finally{
	    	sqlMap.endTransaction();
	    }

		return "";
	}	
	public String bajarDestino(Bnchf18Destino bnchf18Destino,Connection cnx)throws Exception{
		
		try{
			sqlMap.startTransaction();
			sqlMap.update("sqlMantenimiento.BajarDestino",bnchf18Destino);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		

		MantenimientoHost mnt=new MantenimientoHost();		
		mnt.setF50CodTabla("F51");
        mnt.setF50CodElemento(Util.lpad(bnchf18Destino.getF18IdDestino()+"","0",6));

        
		Bnch50SQL  bnchf50=new Bnch50SQL(cnx);
		bnchf50.bajar(mnt);
		
		return "";	
	}
	public Long nextDestino() throws Exception{
	       try {      
	    	    String id = (String)sqlMap.queryForObject("sqlMantenimiento.NextDestino");	    	    
	            if(id ==null){
	            	id="1";
	            }
	            return new Long(id);
	        } catch (Exception e){
	            throw new Exception("Error en generar codigo Destino: " + e);
	        }
	}
	

	
	/** Moneda IMPL   **/
	public List listarMoneda(Bnchf55Moneda bnchf55Moneda) throws Exception{
		List agencia=new ArrayList();
		return sqlMap.queryForList("sqlMantenimiento.ListarMoneda",bnchf55Moneda);	
	}
	
	public List comboMoneda(Bnchf55Moneda bnchf55Moneda) throws Exception{
		List agencia=new ArrayList();
		return sqlMap.queryForList("sqlMantenimiento.ComboMoneda",bnchf55Moneda);	
	}
	
	public Bnchf55Moneda encontrarMoneda(Bnchf55Moneda bnchf55Moneda) throws Exception{
		return (Bnchf55Moneda)((List)sqlMap.queryForList("sqlMantenimiento.EncontrarMoneda",bnchf55Moneda)).get(0);	
	}	
	public String  guardarMoneda(Bnchf55Moneda bnchf55Moneda,Connection cnx)throws Exception{
		
		bnchf55Moneda.setF55IdMoneda(nextMoneda());		
		MantenimientoHost mnt=new MantenimientoHost();		
		mnt.setF50CodTabla("F52");
        mnt.setF50CodElemento(Util.lpad(bnchf55Moneda.getF55IdMoneda()+"","0",6));
        mnt.setF50DesCorta(bnchf55Moneda.getF55DescCorta());
        mnt.setF50DesLarga(bnchf55Moneda.getF55DescLarga());                    
        mnt.setF50DesAmpliada(bnchf55Moneda.getF55DescLarga());
        mnt.setF50DesCampo1("0");
        mnt.setF50DesCampo2("0");
        mnt.setF50DesCampo3("0");
        mnt.setF50DesCampo4("0");     
        
        
	    String str="";
	    Bnch50SQL  bnchf50=new Bnch50SQL(cnx);
	    try {
	    	//str=""+sqlMapbuc.queryForObject("sqlMantenimientoHost.verificaSiExiste",mnt);
	    	
	    	str=""+bnchf50.verificaSiExiste(mnt);
	    	
		} catch (Exception e) {
			// TODO: handle exception 
			str="0";
		}
	    if(str==null){str="0";}	      
	    if(Integer.parseInt(""+str)>=1){
		    //datacom
		    bnchf50.modificar(mnt);
	    }else{
		    //datacom
		    bnchf50.guardar(mnt);	    	
	    } 
	    try{
			sqlMap.startTransaction();
			sqlMap.insert("sqlMantenimiento.GuardarMoneda",bnchf55Moneda);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		
		
		return "";
	}
	public String  modificarMoneda(Bnchf55Moneda bnchf55Moneda,Connection cnx)throws Exception{
		
		MantenimientoHost mnt=new MantenimientoHost();		
		mnt.setF50CodTabla("F52");
        mnt.setF50CodElemento(Util.lpad(bnchf55Moneda.getF55IdMoneda()+"","0",6));
        mnt.setF50DesCorta(bnchf55Moneda.getF55DescCorta());
        mnt.setF50DesLarga(bnchf55Moneda.getF55DescLarga());                    
        mnt.setF50DesAmpliada(bnchf55Moneda.getF55DescLarga());
        mnt.setF50DesCampo1("0");
        mnt.setF50DesCampo2("0");
        mnt.setF50DesCampo3("0");
        mnt.setF50DesCampo4("0"); 
    
        //bnchf50.modificar(mnt);

	    String str="";
	    Bnch50SQL  bnchf50=new Bnch50SQL(cnx);
	    try {
	    	//str=""+sqlMapbuc.queryForObject("sqlMantenimientoHost.verificaSiExiste",mnt);
	    	
	    	str=""+bnchf50.verificaSiExiste(mnt);
	    	
		} catch (Exception e) {
			// TODO: handle exception 
			str="0";
		}
		
	    if(str==null){str="0";}	      
	    
	    if(Integer.parseInt(""+str)>=1){
		    //datacom
		    bnchf50.modificar(mnt);
	    }else{
		    //datacom
		    bnchf50.guardar(mnt);	    	
	    } 

		
		try{
			sqlMap.startTransaction();
			sqlMap.update("sqlMantenimiento.ActualizarMoneda",bnchf55Moneda);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		
		
		return "";
	}	
	public String bajarMoneda(Bnchf55Moneda bnchf55Moneda,Connection cnx)throws Exception{

		try{
			sqlMap.startTransaction();
			sqlMap.update("sqlMantenimiento.BajarMoneda",bnchf55Moneda);
			MantenimientoHost mnt=new MantenimientoHost();		
			mnt.setF50CodTabla("F52");
	        mnt.setF50CodElemento(Util.lpad(bnchf55Moneda.getF55IdMoneda()+"","0",6));

			Bnch50SQL  bnchf50=new Bnch50SQL(cnx);
			bnchf50.bajar(mnt);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		
		return "";	   
	} 
	public Long nextMoneda() throws Exception{
	       try {      
	    	    String id = (String)sqlMap.queryForObject("sqlMantenimiento.NextMoneda");	    	    
	            if(id ==null){
	            	id="1";
	            }
	            return new Long(id);
	        } catch (Exception e){
	            throw new Exception("Error en generar codigo Moneda: " + e);
	        }
	}

	


	
	public String ActualizarModalidadDestino(List ModalidadList,Long idDestino) throws Exception{
		
		try{
			sqlMap.startTransaction();
			//verificamos ya almacenamos en un arrayLis
			List existeLis=new ArrayList();
			List lisDestinos=new ArrayList();
			Bnchf19Modalidad modalidad=new Bnchf19Modalidad();
			
			for (int i = 0; i < ModalidadList.size(); i++) {			
				modalidad=new Bnchf19Modalidad();
				modalidad=(Bnchf19Modalidad)ModalidadList.get(i);
				String existe="0"; // 0 no existe / 1 existe 
				try {
					String rpta=(String)sqlMap.queryForObject("sqlMantenimiento.verficarSiExisteModalidadDestino",modalidad);
					
					if(rpta==null)
						existe="0";
					else				
					if(Integer.parseInt(rpta+"")>=1)
					existe="1";
					else
					existe="0";
					
				} catch (Exception e) {
					// TODO: handle exception
					
					existe="0";
				}
				existeLis.add((String)existe);
			}
			
			String str="0";
			
			for (int i = 0; i < ModalidadList.size(); i++) {			
				modalidad=new Bnchf19Modalidad();
				modalidad=(Bnchf19Modalidad)ModalidadList.get(i);
				
				;
				str=(String)existeLis.get(i);
			
				if(!str.equals("1")){				
					
						sqlMap.insert("sqlMantenimiento.GuardarModalidadDestino",modalidad);	
				}else{
					
					sqlMap.update("sqlMantenimiento.ActualizarModalidadDestino",modalidad);
					}
				lisDestinos.add(modalidad.getF19IdModalidad());
			}		
			
			modalidad.setListDestinos(lisDestinos);
			modalidad.setF19IdDestino(idDestino);
			if(ModalidadList.size()>=1)
			sqlMap.update("sqlMantenimiento.ActualizarModalidadDestinoNoActivo",modalidad);
			else
			sqlMap.update("sqlMantenimiento.ActualizarModalidadDestinoNoActivoTodo",modalidad);
			
			

			
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		

		

		return "";
	}
	public List listarModalidad(Bnchf19Modalidad bnchf19Modalidad) throws Exception{
		
		List agencia=new ArrayList();
		return sqlMap.queryForList("sqlMantenimiento.ListarModalidad",bnchf19Modalidad);	
	}
	

	public Hashtable listarDestinoModalidad(Long idDestino) throws Exception{		
		
		Hashtable result = new Hashtable(); 		
		Bnchf18Destino Bnchf18Destino=new Bnchf18Destino();
		Bnchf18Destino.setF18IdDestino(idDestino);
		List listxAsig=new ArrayList();
		List listAsig=new ArrayList();
		
		listxAsig=(List)sqlMap.queryForList("sqlMantenimiento.ListarDestinoModalidadFaltaAsingar",Bnchf18Destino);
		listAsig=(List)sqlMap.queryForList("sqlMantenimiento.ListarDestinoModalidadAsignados",Bnchf18Destino);
		
		result.put("ListDestinoModalidadFaltaAsingar",listxAsig);
		result.put("ListDestinoModalidadAsignados",listAsig);
			
		
		return result;
		
	}  

	
	
	
	
	
	public List comboModalidad(Bnchf19Modalidad bnchf19Modalidad) throws Exception{
		
		
		List agencia=new ArrayList();
		return sqlMap.queryForList("sqlMantenimiento.ComboModalidad",bnchf19Modalidad);	
	}  
	public Bnchf19Modalidad encontrarModalidad(Bnchf19Modalidad bnchf19Modalidad) throws Exception{
		return (Bnchf19Modalidad)((List)sqlMap.queryForList("sqlMantenimiento.EncontrarModalidad",bnchf19Modalidad)).get(0);	
	}	
	public String  guardarModalidad(Bnchf19Modalidad bnchf19Modalidad,Connection cnx)throws Exception{
		
		bnchf19Modalidad.setF19IdModalidad(nextModalidad());
		
		MantenimientoHost mnt=new MantenimientoHost();		
		mnt.setF50CodTabla("F53");
        mnt.setF50CodElemento(Util.lpad(bnchf19Modalidad.getF19IdModalidad()+"","0",6));
        mnt.setF50DesCorta("");
        mnt.setF50DesLarga(bnchf19Modalidad.getF19DescModalidad());                    
        mnt.setF50DesAmpliada(bnchf19Modalidad.getF19DescModalidad());
        mnt.setF50DesCampo1("0"); 
        mnt.setF50DesCampo2("0");
        mnt.setF50DesCampo3("0");
        mnt.setF50DesCampo4("0"); 
		//FIN
	    String str="";
	    Bnch50SQL  bnchf50=new Bnch50SQL(cnx);
	    try {
//	    	str=""+sqlMapbuc.queryForObject("sqlMantenimientoHost.verificaSiExiste",mnt);
	    	
	    	str=""+bnchf50.verificaSiExiste(mnt);
	    	
		} catch (Exception e) {
			// TODO: handle exception 
			str="0";
		}
		
	    if(str==null){str="0";}	      
	    
	    if(Integer.parseInt(""+str)>=1){
		    //datacom
		    bnchf50.modificar(mnt);
	    }else{
		    //datacom
		    bnchf50.guardar(mnt);	    	
	    }  
	    
		
		try{
			sqlMap.startTransaction();
			sqlMap.insert("sqlMantenimiento.GuardarModalidad",bnchf19Modalidad);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		
		return "";
	}
	public String  modificarModalidad(Bnchf19Modalidad bnchf19Modalidad,Connection cnx)throws Exception{

		MantenimientoHost mnt=new MantenimientoHost();		
		mnt.setF50CodTabla("F53");
        mnt.setF50CodElemento(Util.lpad(bnchf19Modalidad.getF19IdModalidad()+"","0",6));
        mnt.setF50DesCorta("");
        mnt.setF50DesLarga(bnchf19Modalidad.getF19DescModalidad());                    
        mnt.setF50DesAmpliada(bnchf19Modalidad.getF19DescModalidad());
        mnt.setF50DesCampo1("0");
        mnt.setF50DesCampo2("0");
        mnt.setF50DesCampo3("0");  
        mnt.setF50DesCampo4("0"); 
      
        
		//FIN
	    String str="";
	    Bnch50SQL  bnchf50=new Bnch50SQL(cnx);
	    try {
//	    	str=""+sqlMapbuc.queryForObject("sqlMantenimientoHost.verificaSiExiste",mnt);
	    	
	    	str=""+bnchf50.verificaSiExiste(mnt);
	    	
		} catch (Exception e) {
			// TODO: handle exception 
			str="0";
		}
	
	    if(str==null){str="0";}	      
	   
	    if(Integer.parseInt(""+str)>=1){
		    //datacom
		    bnchf50.modificar(mnt);
	    }else{
		    //datacom
	    	 bnchf50.guardar(mnt);	    	
	    }  
	    
		try{
			sqlMap.startTransaction();
			sqlMap.update("sqlMantenimiento.ActualizarModalidad",bnchf19Modalidad);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		
		return "";
	}	
	public String bajarModalidad(Bnchf19Modalidad bnchf19Modalidad,Connection cnx)throws Exception{

		
		try{
			sqlMap.startTransaction();
			
		
			sqlMap.update("sqlMantenimiento.BajarModalidad",bnchf19Modalidad);
			MantenimientoHost mnt=new MantenimientoHost();		
			mnt.setF50CodTabla("F53");
	        mnt.setF50CodElemento(Util.lpad(bnchf19Modalidad.getF19IdModalidad()+"","0",6));		
			Bnch50SQL  bnchf50=new Bnch50SQL(cnx);
			bnchf50.bajar(mnt);
			
			
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}

		return "";	
	}
	public Long nextModalidad() throws Exception{
	       try {      
	    	    String id = (String)sqlMap.queryForObject("sqlMantenimiento.NextModalidad");	    	    
	            if(id ==null){
	            	id="1";
	            }
	            return new Long(id);
	        } catch (Exception e){
	            throw new Exception("Error en generar codigo Modalidad: " + e);
	        }
	}
	
	
	/** GrupoDestino IMPL   **/

	
	public List comboGrupoDestino() throws Exception{
		List agencia=new ArrayList();
		return sqlMap.queryForList("sqlMantenimiento.ComboGrupoDestino");	
	}
	
	
	public List listarGrupoDestino(Bnchf45GrupoDestino bnchf45GrupoDestino) throws Exception{
		List agencia=new ArrayList();
		return sqlMap.queryForList("sqlMantenimiento.ListarGrupoDestino",bnchf45GrupoDestino);	
	}
	public Bnchf45GrupoDestino encontrarGrupoDestino(Bnchf45GrupoDestino bnchf45GrupoDestino) throws Exception{
		return (Bnchf45GrupoDestino)((List)sqlMap.queryForList("sqlMantenimiento.EncontrarGrupoDestino",bnchf45GrupoDestino)).get(0);	
	}	
	public String  guardarGrupoDestino(Bnchf45GrupoDestino bnchf45GrupoDestino)throws Exception{

		try{
			sqlMap.startTransaction();
			bnchf45GrupoDestino.setF45IdGrupDest(nextGrupoDestino());
			sqlMap.insert("sqlMantenimiento.GuardarGrupoDestino",bnchf45GrupoDestino);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		
		return "";
	}
	public String  modificarGrupoDestino(Bnchf45GrupoDestino bnchf45GrupoDestino)throws Exception{

		try{
			sqlMap.startTransaction();
			sqlMap.update("sqlMantenimiento.ActualizarGrupoDestino",bnchf45GrupoDestino);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		
		return "";
	}	
	public String bajarGrupoDestino(Bnchf45GrupoDestino bnchf45GrupoDestino)throws Exception{

		try{
			sqlMap.startTransaction();
			sqlMap.update("sqlMantenimiento.BajarGrupoDestino",bnchf45GrupoDestino);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		
		return "";	
	}
	public Long nextGrupoDestino() throws Exception{
	       try {      
	    	    String id = (String)sqlMap.queryForObject("sqlMantenimiento.NextGrupoDestino");	    	    
	            if(id ==null){
	            	id="1";
	            }
	            return new Long(id);
	        } catch (Exception e){
	            throw new Exception("Error en generar codigo GrupoDestino: " + e);
	        }
	}	

	/** Ocupacion Cargo  **/
	
	public List listarCargo(Bnchf28OcupacionCargo bnchf28OcupacionCargo) throws Exception{
		List agencia=new ArrayList();
		return sqlMap.queryForList("sqlMantenimiento.ListarCargo",bnchf28OcupacionCargo);	
	}
	public Bnchf28OcupacionCargo encontrarCargo(Bnchf28OcupacionCargo bnchf28OcupacionCargo) throws Exception{
		return (Bnchf28OcupacionCargo)((List)sqlMap.queryForList("sqlMantenimiento.EncontrarCargo",bnchf28OcupacionCargo)).get(0);	
	}	
	public String  guardarCargo(Bnchf28OcupacionCargo bnchf28OcupacionCargo)throws Exception{

		try{
			sqlMap.startTransaction();
			bnchf28OcupacionCargo.setF28IdCargo(nextCargo());
			sqlMap.insert("sqlMantenimiento.GuardarCargo",bnchf28OcupacionCargo);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		
		return "";
	}
	public String  modificarCargo(Bnchf28OcupacionCargo bnchf28OcupacionCargo)throws Exception{
		
		
		
		try{
			sqlMap.startTransaction();
			sqlMap.update("sqlMantenimiento.ActualizarCargo",bnchf28OcupacionCargo);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		
		return "";
	}	
	public String bajarCargo(Bnchf28OcupacionCargo bnchf28OcupacionCargo)throws Exception{

		try{
			sqlMap.startTransaction();
			sqlMap.update("sqlMantenimiento.BajarCargo",bnchf28OcupacionCargo);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		
		return "";	
	}
	public Long nextCargo() throws Exception{
	       try {      
	    	    String id = (String)sqlMap.queryForObject("sqlMantenimiento.NextCargo");	    	    
	            if(id ==null){
	            	id="1";
	            }
	            return new Long(id);
	        } catch (Exception e){
	            throw new Exception("Error en generar codigo Cargo: " + e);
	        }
	}
	
	
	
	
	/** parametroProducto **/
	public List listarParametroProducto(Bnchf54ParametroProducto bnchf54ParametroProducto) throws Exception{
		List agencia=new ArrayList();
		return sqlMap.queryForList("sqlMantenimiento.ListarParametroProducto",bnchf54ParametroProducto);	
	}
	public Bnchf54ParametroProducto encontrarParametroProducto(Bnchf54ParametroProducto bnchf54ParametroProducto) throws Exception{
		
		return (Bnchf54ParametroProducto)((List)sqlMap.queryForList("sqlMantenimiento.EncontrarParametroProducto",bnchf54ParametroProducto)).get(0);
		
	}	
	public String  guardarParametroProducto(Bnchf54ParametroProducto bnchf54ParametroProducto)throws Exception{

		try{
			sqlMap.startTransaction();
			bnchf54ParametroProducto.getId().getBnchf20Producto().setF20IdProducto(nextParametroProducto());
			sqlMap.insert("sqlMantenimiento.GuardarParametroProducto",bnchf54ParametroProducto);		
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		
		return "";
	}
	public String  modificarParametroProducto(Bnchf54ParametroProducto bnchf54ParametroProducto)throws Exception{

		try{
			sqlMap.startTransaction();
			sqlMap.update("sqlMantenimiento.ActualizarParametroProducto",bnchf54ParametroProducto);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}

		return "";
	}	
	public String bajarParametroProducto(Bnchf54ParametroProducto bnchf54ParametroProducto)throws Exception{

		try{
			sqlMap.startTransaction();
			sqlMap.update("sqlMantenimiento.BajarParametroProducto",bnchf54ParametroProducto);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		
		return "";	
	}
	public Long nextParametroProducto() throws Exception{
	       try {      
	    	    String id = (String)sqlMap.queryForObject("sqlMantenimiento.NextParametroProducto");	    	    
	            if(id ==null){
	            	id="1";
	            }
	            return new Long(id);
	        } catch (Exception e){
	            throw new Exception("Error en generar codigo ParametroProducto: " + e);
	        }
	}
	 
	
	// ListarBNCHF15
 
	public List ListarBNCHF15(MantenimientoHost ListarBNCHF15,Connection cnx) throws Exception{
		List agencia=new ArrayList();
		
		  Bnch50SQL  bnchf50=new Bnch50SQL(cnx);
		  
		//return sqlMapbuc.queryForList("sqlMantenimientoHost.ListarBNCHF15",ListarBNCHF15);
		  /*
		select  
			F50_COD_ELEMENTO as F15_COD_CENT_HIPOTCR,
			F50_DES_LARGA as F15_NOM_CENT_HIPOTCR 			
		from 	
			NACION.BNCHF50   where 	F50_COD_TABLA='F15'		   
		   * */
		  
		  return bnchf50.ListarXCHBNCHF06();
	}
	
	/** bNCHF06    **/
	public List listarBNCHF06(MantenimientoHost bnchf54BNCHF06,Connection cnx) throws Exception{
		
		List tarifasLis=new ArrayList();		
		List tarifasLisNew=new ArrayList();
    	
    	MantenimientoHost bnchf54BNCHF06New=new MantenimientoHost();
    	
    	
    	
    	Bnch06SQL  bn=new Bnch06SQL(cnx);    	
    	tarifasLis=(List)bn.ListarXCHBNCHF06(bnchf54BNCHF06);
    	
    	
		if(tarifasLis!=null)			
    	for (int i = 0; i < tarifasLis.size(); i++) {
    		
    		bnchf54BNCHF06New=new MantenimientoHost();
    		bnchf54BNCHF06New=(MantenimientoHost)tarifasLis.get(i);
    		bnchf54BNCHF06New.setF06Timestampt(formatToTimesTamp(bnchf54BNCHF06New.getF06TimestampStr()));    		
    		tarifasLisNew.add(bnchf54BNCHF06New);
    	}
    	
		return tarifasLisNew;	
	}
	
	
	private  Timestamp formatToTimesTamp(String dateStr){
		try {
			SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH.mm.ss.SSSSSS");
			//java.util.Date date = sdf.parse("2004-07-24 09:45:52.189");
			java.util.Date date = sdf.parse(dateStr);
			java.sql.Timestamp timestamp = new java.sql.Timestamp(date.getTime());			
			return timestamp;
		} catch (Exception e) {
			// TODO: handle exception
			return null;
		}
	}
	
	
	
	
	//f06CodTarifa	
	public MantenimientoHost encontrarBNCHF06(MantenimientoHost bnchf54BNCHF06,Connection cnx) throws Exception{
		
	
		Bnch06SQL Bnch06SQL=new Bnch06SQL(cnx);
		return (MantenimientoHost)((List)Bnch06SQL.EncontrarBNCHF06(bnchf54BNCHF06)).get(0);
	}	  
	public String  guardarBNCHF06(MantenimientoHost bnchf54BNCHF06,Connection cnx)throws Exception{
		
		
		
		bnchf54BNCHF06.setF06CodEstado(Util.lpad(Constante.gBN_CONST_ESTADO_DE_REGISTRO_DE_TABLA_ACTIVO,"0",2));		
		bnchf54BNCHF06.setF06InteresesM(new Double(""+Constante.gBN_CONST_VALOR_DEFAULT_NUMBER_HOST));
		String timestamp=""; 
		Calendar fecha = Calendar.getInstance();
		SimpleDateFormat formato =  new SimpleDateFormat("yyyy-MM-dd-HH.mm.ss.SSSSSS");
		timestamp = formato.format(fecha.getTime());
		bnchf54BNCHF06.setF06Timestamp(timestamp);
		bnchf54BNCHF06.setF06InteresesM(new Double("0")); 
		bnchf54BNCHF06.setF06CodTarifa(Util.lpad(nextBNCHF06(bnchf54BNCHF06,cnx),"0",6));  
		
		
		Bnch06SQL Bnch06SQL=new Bnch06SQL(cnx);
		Bnch06SQL.guardar(bnchf54BNCHF06);
		return "";
	}
	public String  modificarBNCHF06(MantenimientoHost bnchf54BNCHF06,Connection  cnx)throws Exception{
		
		bnchf54BNCHF06.setF06InteresesM(new Double("0"));

	
		
		Calendar fecha = Calendar.getInstance();
		String timestamp=""; 
		SimpleDateFormat formato =  new SimpleDateFormat("yyyy-MM-dd-HH.mm.ss.SSSSSS");
		timestamp = formato.format(fecha.getTime());
		bnchf54BNCHF06.setF06Timestamp(timestamp);
	
		Bnch06SQL Bnch06SQL=new Bnch06SQL(cnx);
		Bnch06SQL.guardar(bnchf54BNCHF06);
		return "";
	}	
	public String bajarBNCHF06(MantenimientoHost bnchf54BNCHF06,Connection cnx)throws Exception{
		
	
		return "";	
	}
	public String nextBNCHF06(MantenimientoHost bnchf54BNCHF06,Connection cnx) throws Exception{
	       try {      
	       
			Bnch06SQL Bnch06SQL=new Bnch06SQL(cnx);
			String id =Bnch06SQL.nextBNCHF06(bnchf54BNCHF06);
			
	            if(id==null || id.equals("")){
	            	id="1";
	            }else{
	            	id=(Integer.parseInt(id+"")+1)+"";
	            }   
	            return  id;
	        } catch (Exception e){
	            throw new Exception("Error en generar codigo BNCHF06: " + e);
	            
	        }
	}
	/*producto*/
	 
	/** producto **/
	public List listarProducto(Bnchf20Producto bnchf20Producto) throws Exception{
		List agencia=new ArrayList();
	
		return sqlMap.queryForList("sqlMantenimiento.ListarProducto",bnchf20Producto);	
	}
	public Bnchf20Producto encontrarProducto(Bnchf20Producto bnchf20Producto) throws Exception{
		return (Bnchf20Producto)((List)sqlMap.queryForList("sqlMantenimiento.EncontrarProducto",bnchf20Producto)).get(0);	
	}	 
	public String  guardarProducto(Bnchf20Producto bnchf20Producto,Connection cnx)throws Exception{
		
		bnchf20Producto.setF20IdProducto(Util.copyLongc(""+nextProducto()));
		//f20IdGrupoObjetivo
		
		
		try{
			sqlMap.startTransaction();


			sqlMap.insert("sqlMantenimiento.GuardarProducto",bnchf20Producto);
			
			Bnch05SQL bnchf05=new Bnch05SQL(cnx);		
			MantenimientoHost mnt =new MantenimientoHost();		
		 	String timestamp="" ;
			Calendar fecha = Calendar.getInstance();		
			SimpleDateFormat formato =  new SimpleDateFormat("yyyyMMDD");
			timestamp = formato.format(fecha.getTime());
			 mnt.setF05CodProd(""+bnchf20Producto.getF20IdProducto());		 
			 mnt.setF05CodProg(""+bnchf20Producto.getF20IdPrograma());			
			 mnt.setF05CodGrupoObjetivo(""+bnchf20Producto.getF20IdGrupoObjetivo());		 
			 mnt.setF05CodDest(""+bnchf20Producto.getF20IdDestino());	 
			 mnt.setF05Modalidad(""+bnchf20Producto.getF20IdModalidad());		 
			 mnt.setF05Moneda(""+bnchf20Producto.getF20IdMoneda());
			 mnt.setF05Descripcion(""+bnchf20Producto.getF20DescProducto());
			 mnt.setF05TimesTamp(timestamp );
			 mnt.setF05CodUsuario(""+bnchf20Producto.getF20IdUsuaCrea());		 
			 String existe=bnchf05.existeBNCHF05(mnt);
			if(existe.equals("0")){
				bnchf05.insertar(mnt);		
			}else{
				bnchf05.modificar(mnt);
			}
			
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}

	
		return "";
	}
	public String  modificarProducto(Bnchf20Producto bnchf20Producto,Connection cnx)throws Exception{
		
		try{
			sqlMap.startTransaction();
			


			sqlMap.update("sqlMantenimiento.ActualizarProducto",bnchf20Producto);		
			Bnch05SQL bnchf05=new Bnch05SQL(cnx);		
			MantenimientoHost mnt =new MantenimientoHost();		
		 	String timestamp="" ;
			Calendar fecha = Calendar.getInstance();		
			SimpleDateFormat formato =  new SimpleDateFormat("yyyyMMDD");
			timestamp = formato.format(fecha.getTime());
			String usuarioCrea=bnchf20Producto.getF20IdUsuaCrea();
			bnchf20Producto=(Bnchf20Producto)((List)sqlMap.queryForList("sqlMantenimiento.EncontrarProducto",bnchf20Producto)).get(0);

			 mnt.setF05CodProd(""+bnchf20Producto.getF20IdProducto());		 
			 mnt.setF05CodProg(""+bnchf20Producto.getF20IdPrograma());			
			 mnt.setF05CodGrupoObjetivo(""+bnchf20Producto.getF20IdGrupoObjetivo());		 
			 mnt.setF05CodDest(""+bnchf20Producto.getF20IdDestino());	 
			 mnt.setF05Modalidad(""+bnchf20Producto.getF20IdModalidad());		 
			 mnt.setF05Moneda(""+bnchf20Producto.getF20IdMoneda());
			 mnt.setF05Descripcion(""+bnchf20Producto.getF20DescProducto());
			 mnt.setF05TimesTamp(timestamp );			 
			
			 mnt.setF05CodUsuario(usuarioCrea);
			 
			 
			 String existe=bnchf05.existeBNCHF05(mnt);		 
			 
			 
					
			if(existe.equals("0")){
				bnchf05.insertar(mnt);		
			}else{
				bnchf05.modificar(mnt);
			}

			
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		


		return "";
	}	
	public String bajarProducto(Bnchf20Producto bnchf20Producto)throws Exception{
		

		try{
			sqlMap.startTransaction();
			sqlMap.update("sqlMantenimiento.BajarProducto",bnchf20Producto);
			sqlMap.commitTransaction();
		}catch(Exception e){
			e.printStackTrace();
			throw e;
		}finally{
			sqlMap.endTransaction();
		}
		
		
		return "";	
	}
	public Long nextProducto() throws Exception{
	       try {      
	    	    String id = (String)sqlMap.queryForObject("sqlMantenimiento.NextProducto");	    	    
	            if(id ==null){
	            	id="100";
	            }
	            return new Long(id);
	        } catch (Exception e){
	            throw new Exception("Error en generar codigo   Producto: " + e);
	        }
	}
	
	public int verificaProduco(Bnchf20Producto bnchf20Producto) throws Exception{
		
			int i=0;
	       try {      
	    	    String id = (String)sqlMap.queryForObject("sqlMantenimiento.VerificaAsociacionProducto",bnchf20Producto);
	    	    if(id ==null){
	            	id="0";
	            }
	            return Integer.parseInt(id);
	        } catch (Exception e){
	            throw new Exception("Error en generar codigo Producto: " + e);
	        }
	}
	
	public List listarComboGrupoDestino() throws Exception{
		List agencia=new ArrayList();
		return sqlMap.queryForList("sqlMantenimiento.ListarComboGrupoDestino");	
	}
	//false no existe /true existe
	public boolean   VerificarDocumentoBroker(Long tipoDocumento,String NroDocumento) throws Exception{

	
		boolean rpta =false;		
		int i=0;
	       try {      
	       		Bnchf38Broker bnchf38Broker=new Bnchf38Broker();	       		
	       		bnchf38Broker.setF38TpoDoc(tipoDocumento);
	       		bnchf38Broker.setF38NumDoc(NroDocumento);
	    	    String id = (String)sqlMap.queryForObject("sqlMantenimiento.VerificarDocumentoBroker",bnchf38Broker);
	    	    if(id!=null)
	            	if(Integer.parseInt(id+"")>=1)
	            	rpta=true;
	        } catch (Exception e){	        	
	        	logger.error(""+e);
	            rpta =true;
	        }
		return rpta;
	}
	
	//false no existe /true existe
	public boolean   VerificarDocumentoPromotor(Long tipoDocumento,String NroDocumento) throws Exception{
		
		boolean rpta =false;		
		int i=0;
	       try {      
	       		Bnchf37Promotor bnchf37Promotor=new Bnchf37Promotor();	       		
	       		bnchf37Promotor.setF37TpoDoc(tipoDocumento);
	       		bnchf37Promotor.setF37NumDoc(NroDocumento);
	    	    String id = (String)sqlMap.queryForObject("sqlMantenimiento.VerificarDocumentoPromotor",bnchf37Promotor);
	    	    if(id!=null)
	            	if(Integer.parseInt(id+"")>=1)
	            	rpta=true;
	        } catch (Exception e){	        	
	        	logger.error(""+e);
	            rpta =true;
	        }
		return rpta;
	}
	
	//false no existe /true existe
	public boolean  VerificarDocumentoNotaria(String ruc) throws Exception{
		
		boolean rpta =false;		
		int i=0;
	       try {      
	       	Bnchf39Notaria bnchf39Notaria=new Bnchf39Notaria();
	       		bnchf39Notaria.setF39Ruc(ruc);
	    	    String id = (String)sqlMap.queryForObject("sqlMantenimiento.VerificarDocumentoNotaria",bnchf39Notaria);
	    	    if(id!=null)
	            	if(Integer.parseInt(id+"")>=1)
	            	rpta=true;
	        } catch (Exception e){	        	
	        	logger.error(""+e);
	            rpta =true;
	        }
		return rpta;
	}
	
	

	//false no existe /true existe
	public boolean  VerificarDocumentoTasador(int tipoTasador,Long f40TpoDoc,String f40NumDoc) throws Exception{
		boolean rpta =false;		
		int i=0;
	
		if(tipoTasador==1){//natural
		 
	       try {       
	       	Bnchf40Tasador bnchf40Tasador=new Bnchf40Tasador();
	       		bnchf40Tasador.setF40TpoDoc(f40TpoDoc);	       		
	       		bnchf40Tasador.setF40NumDoc(f40NumDoc);
	    	    String id = (String)sqlMap.queryForObject("sqlMantenimiento.VerificarDocumentoTasadorNatural",bnchf40Tasador);
	    	    if(id!=null) 
	            	if(Integer.parseInt(id+"")>=1)
	            	rpta=true;
	        } catch (Exception e){	        	
	        	logger.error(""+e);
	            rpta =true;
	        }
		}
		if(tipoTasador==2){//juridica
		
		       try {      
		       	Bnchf40Tasador bnchf40Tasador=new Bnchf40Tasador();
		       	
		       		bnchf40Tasador.setF40Ruc(f40NumDoc);
		    	    String id = (String)sqlMap.queryForObject("sqlMantenimiento.VerificarDocumentoTasadorJuridica",bnchf40Tasador);
		    	    if(id!=null)
		            	if(Integer.parseInt(id+"")>=1)
		            	rpta=true;
		        } catch (Exception e){	        	
		        	logger.error(""+e);
		            rpta =true;
		        }
		}
	        
	        
		return rpta;
	}
	

	//false no existe /true existe
	public boolean  VerificarDocumentoInstitucionEmpresa(String f63Ruc) throws Exception{
		
		boolean rpta =false;		
		int i=0;
	       try {      
	       	Bnchf63InstitucionEmpresa bnchf63InstitucionEmpresa=new Bnchf63InstitucionEmpresa();
	       		bnchf63InstitucionEmpresa.setF63Ruc(f63Ruc);	       		
	    	    String id = (String)sqlMap.queryForObject("sqlMantenimiento.VerificarDocumentoInstitucionEmpresa",bnchf63InstitucionEmpresa);
	    	    if(id!=null)
	            	if(Integer.parseInt(id+"")>=1)
	            	rpta=true;
	        } catch (Exception e){	        	
	        	logger.error(""+e);
	            rpta =true;
	        }
		return rpta;
	}

	
	public List ListarProductoCombo() throws Exception{
		return (List)sqlMap.queryForList("sqlMantenimiento.ListarProductoCombo","");
	}
	
	

	//host
	
//	mantenimiento parametro cobranza
	
	/** BNCHF02    **/
	public List listarBNCHF02(MantenimientoHost bnchf54BNCHF02,Connection cnx) throws Exception{
		
	
		List cobranzasLis=new ArrayList();		
		List cobranzasLisNew=new ArrayList();    	 
    	MantenimientoHost bnchf54BNCHF02New=new MantenimientoHost();
    	try {
    		
    		
    	
    		Bnch02SQL bnch02SQL=new Bnch02SQL(cnx);
    		cobranzasLis=(List)bnch02SQL.select(bnchf54BNCHF02);
    	
		} catch (Exception e) {
			
			
			logger.error("	Error 	"+e);
		}
    	
    
    	
		return cobranzasLis;	
	}

	public MantenimientoHost encontrarBNCHF02(MantenimientoHost bnchf54BNCHF02,Connection cnx) throws Exception{
	
		MantenimientoHost mt=new MantenimientoHost();

		Bnch02SQL bnch02SQL=new Bnch02SQL(cnx);
		
		List l=new ArrayList();
		l=bnch02SQL.selectFind(bnchf54BNCHF02);
	
		if(l!=null){		
						
			mt=(MantenimientoHost)(l.get(0));
			
			mt.setF02DesParam(mt.getF02DesParam().trim());
	
		}		
		return mt;	
	}



	public String  guardarBNCHF02(MantenimientoHost bnchf54BNCHF02,Connection cnx)throws Exception{
		
		String fechaFormateada=""; 
		Calendar fecha = Calendar.getInstance();
		SimpleDateFormat formato =  new SimpleDateFormat("yyyyMMdd");
		fechaFormateada = formato.format(fecha.getTime());
		bnchf54BNCHF02.setF02FecIngreso(new Double(""+fechaFormateada));
		
		Bnch02SQL bnch02SQL=new Bnch02SQL(cnx);
		bnch02SQL.insertar(bnchf54BNCHF02);
		
		return "";
	}
	public String  modificarBNCHF02(MantenimientoHost bnchf54BNCHF02,Connection cnx)throws Exception{
		
		Bnch02SQL bnch02SQL=new Bnch02SQL(cnx);
		bnch02SQL.modificar(bnchf54BNCHF02);
		
		return "";
	}	
	public String bajarBNCHF02(MantenimientoHost bnchf54BNCHF02,Connection cnx)throws Exception{
		
		
		Bnch02SQL bnch02SQL=new Bnch02SQL(cnx);
		bnch02SQL.bajar(bnchf54BNCHF02);
		
		
		return "";	
	}
	public String nextBNCHF02(MantenimientoHost bnchf54BNCHF02,Connection cnx ) throws Exception{
	       try {      
	    	
			Bnch02SQL bnch02SQL=new Bnch02SQL(cnx);
			String id = bnch02SQL.nextBNCHF02(bnchf54BNCHF02);
	            if(id ==null){
	            	id="1";
	            }else{	
	            	id=(Integer.parseInt(id+"")+1)+"";
	            }   
	            return  id;
	        } catch (Exception e){
	            throw new Exception("Error en generar codigo BNCHF02: " + e);
	        }
	}

	
/**************************************************/	
/******** MANTENIMIENTO TABLA HOST  ****************/
/**************************************************/
	
	public String  guardarTablaHost(MantenimientoHost mnt,Connection cnx)throws Exception{
		
			/*INI*/
			String str="";
		    Bnch50SQL  bnchf50=new Bnch50SQL(cnx);
		    str=""+bnchf50.verificaSiExiste(mnt);			
			if(str==null){str="0";}	      
    
		    if(Integer.parseInt(""+str)>=1){
			    //datacom		    	
			    bnchf50.modificarHost(mnt);
			}else{
			    //datacom
			    bnchf50.guardar(mnt);	    	
		    	}   
		return "";
	}

	
	public String  modificarTablaHost(MantenimientoHost mnt,Connection cnx)throws Exception{
		    
		   /*INI*/
			String str="";
		    Bnch50SQL  bnchf50=new Bnch50SQL(cnx);
		    str=""+bnchf50.verificaSiExiste(mnt);			
			if(str==null){str="0";}	      
    
		    if(Integer.parseInt(""+str)>=1){
			    //datacom		    	
			    bnchf50.modificarHost(mnt);
			}else{
			    //datacom
			    bnchf50.guardar(mnt);	    	
		    	}   
		return "";
	}  
	public List  listarTablaHost(MantenimientoHost mnt,Connection cnx)throws Exception,SQLException{
			
		Bnch50SQL  bnchf50=new Bnch50SQL(cnx);
		return bnchf50.listarTablaHost(mnt);
	}
	public MantenimientoHost  encontrarTablaHost(MantenimientoHost mnt,Connection cnx)throws Exception{
	Bnch50SQL  bnchf50=new Bnch50SQL(cnx);
	return bnchf50.encontrarTablaHost(mnt);
	}
	public String verificaSiExiste( MantenimientoHost mnt,Connection cnx) throws SQLException{
		Bnch50SQL  bnchf50=new Bnch50SQL(cnx);
		return bnchf50.verificaSiExiste(mnt);
		
	}

}


